linalg_cholesky Module


Uses


Interfaces

public interface cholesky_factor

  • private pure function cholesky_factor_dbl(a, upper) result(rst)

    Computes the Cholesky factorization of a symmetric, positive definite matrix.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in), dimension(:,:) :: a

    The N-by-N matrix to factor.

    logical, intent(in), optional :: upper

    An optional input that, if specified, provides control over whether the factorization is computed as (set to true), or as (set to false). The default is true such that .

    Return Value real(kind=real64), allocatable, dimension(:,:)

    The factored matrix.

  • private pure function cholesky_factor_cmplx(a, upper) result(rst)

    Computes the Cholesky factorization of a symmetric, positive definite matrix.

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=real64), intent(in), dimension(:,:) :: a

    The N-by-N matrix to factor.

    logical, intent(in), optional :: upper

    An optional input that, if specified, provides control over whether the factorization is computed as (set to true), or as (set to false). The default is true such that .

    Return Value complex(kind=real64), allocatable, dimension(:,:)

    The factored matrix.

public interface cholesky_rank1_downdate

  • private pure subroutine cholesky_rank1_downdate_dbl(r, u)

    Computes the rank 1 downdate to a Cholesky factored matrix such that . This operation only works if the new matrix is positive definite.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(inout), dimension(:,:) :: r

    On input, the N-by-N upper triangular matrix . On output, the updated matrix .

    real(kind=real64), intent(inout), dimension(:) :: u

    On input, the N-element vector . On output, the rotation sines used to transform to .

  • private pure subroutine cholesky_rank1_downdate_cmplx(r, u)

    Computes the rank 1 downdate to a Cholesky factored matrix such that . This operation only works if the new matrix is positive definite.

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=real64), intent(inout), dimension(:,:) :: r

    On input, the N-by-N upper triangular matrix . On output, the updated matrix .

    complex(kind=real64), intent(inout), dimension(:) :: u

    On input, the N-element vector . On output, the rotation sines used to transform to .

public interface cholesky_rank1_update

  • private pure subroutine cholesky_rank1_update_dbl(r, u)

    Computes the rank 1 update to a Cholesky factored matrix such that .

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(inout), dimension(:,:) :: r

    On input, the N-by-N upper triangular matrix . On output, the updated matrix .

    real(kind=real64), intent(inout), dimension(:) :: u

    On input, the N-element vector . On output, the rotation sines used to transform to .

  • private pure subroutine cholesky_rank1_update_cmplx(r, u)

    Computes the rank 1 update to a Cholesky factored matrix such that .

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=real64), intent(inout), dimension(:,:) :: r

    On input, the N-by-N upper triangular matrix . On output, the updated matrix .

    complex(kind=real64), intent(inout), dimension(:) :: u

    On input, the N-element vector . On output, the rotation sines used to transform to .

public interface solve_cholesky

  • private pure function solve_cholesky_mtx(upper, a, b) result(x)

    Solves the system of Cholesky factored equations or .

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: upper

    Set to true if is factored such that ; else, set to false if is factored such that .

    real(kind=real64), intent(in), dimension(:,:) :: a

    The N-by-N Cholesky factored matrix as returned by cholesky_factor.

    real(kind=real64), intent(in), dimension(:,:) :: b

    The N-by-NRHS matrix .

    Return Value real(kind=real64), allocatable, dimension(:,:)

    The resulting N-by-NRHS matrix .

  • private pure function solve_cholesky_mtx_cmplx(upper, a, b) result(x)

    Solves the system of Cholesky factored equations or .

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: upper

    Set to true if is factored such that ; else, set to false if is factored such that .

    complex(kind=real64), intent(in), dimension(:,:) :: a

    The N-by-N Cholesky factored matrix as returned by cholesky_factor.

    complex(kind=real64), intent(in), dimension(:,:) :: b

    The N-by-NRHS matrix .

    Return Value complex(kind=real64), allocatable, dimension(:,:)

    The resulting N-by-NRHS matrix .

  • private pure function solve_cholesky_vec(upper, a, b) result(x)

    Solves the system of Cholesky factored equations or .

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: upper

    Set to true if is factored such that ; else, set to false if is factored such that .

    real(kind=real64), intent(in), dimension(:,:) :: a

    The N-by-N Cholesky factored matrix as returned by cholesky_factor.

    real(kind=real64), intent(in), dimension(:) :: b

    The N-element vector .

    Return Value real(kind=real64), allocatable, dimension(:)

    The resulting N-element vector .

  • private pure function solve_cholesky_vec_cmplx(upper, a, b) result(x)

    Solves the system of Cholesky factored equations or .

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: upper

    Set to true if is factored such that ; else, set to false if is factored such that .

    complex(kind=real64), intent(in), dimension(:,:) :: a

    The N-by-N Cholesky factored matrix as returned by cholesky_factor.

    complex(kind=real64), intent(in), dimension(:) :: b

    The N-element vector .

    Return Value complex(kind=real64), allocatable, dimension(:)

    The resulting N-element vector .